function [rmse_value,mae_value,error_ratio,recovery_loss] = rmse_calculate_matrix(matrix_org, matrix_train,arry)
[x,y]=size(matrix_org);
[x1,y1]=size(arry);
numarry=y1;
num=x*y;
cal_matrix=matrix_org-matrix_train;
square_cal_matrix=cal_matrix.^2;
square_matrix_org=matrix_org.^2;
% caiyang_cal_tensor=zeors(x,y,z);
% caiyang_cal_tensor(arry)=cal_tensor(arry);

%recovery_loss
caiyang_square_cal_matrix=zeros(x,y);
caiyang_square_cal_matrix(arry)=square_cal_matrix(arry);
recovery_loss=(sum(caiyang_square_cal_matrix(:)));

%error_ratio
feicaiyang_square_cal_matrix_cal=ones(x,y);
feicaiyang_square_cal_matrix_cal(arry)=0;
feicaiyang_square_cal_matrix=feicaiyang_square_cal_matrix_cal.*square_cal_matrix;
feicaiyang_square_matrix_org=square_matrix_org.*feicaiyang_square_cal_matrix_cal;
error_ratio=sum(feicaiyang_square_cal_matrix(:))./sum(feicaiyang_square_matrix_org(:));

%mae_value
cal_matrix_sum=abs(cal_matrix);
mae_value=sum(cal_matrix_sum(:))./num;

%rmse_value
square_cal_matrix_sum=abs(square_cal_matrix);
rmse_value=sum(square_cal_matrix_sum(:))./num;

% org_fvalue = norm(matrix_org, 'fro' );
% rmse_value=sum(sum(abs(matrix_org-matrix_train)))./num;